package com.asen.commons.annotation;

import com.asen.commons.core.base.ObjectEnum;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * 枚举类型
 * <p>标识属性为数据字典类型</p>
 *
 * @author ls
 * @version 1.0
 * @date 2024-04-09
 */
@Target({FIELD})
@Retention(RUNTIME)
public @interface FieldEnum {

    /**
     * 数据字典类型编码
     *
     * @return
     */
    Class<? extends ObjectEnum> value();

    /**
     * 枚举描述属性名称，默认为xxxDesc
     *
     * @return
     */
    String attr() default "";

    /**
     * 表示本次注解仅用于标识属性类型，不生成关联属性
     *
     * @return
     */
    boolean typeOnly() default false;
}
